const fs = require('fs');

function getfiles(path: string) {    // 读取目录下所有目录文件  返回数组
  return fs.readdirSync(path, { encoding: 'utf8', withFileTypes: true });
}

function isFile(filepath: string) {  // 判断是否是文件 Boolean
  const stat = fs.statSync(filepath);
  return stat.isFile();
}

function isDir(filepath: string) {  // 判断是否是文件夹 Boolean
  const stat = fs.statSync(filepath);
  return stat.isDirectory();
}


// 递归遍历所有文件夹和文件
// param1:路径  param2:将结果存储到该数组中
// let time = 0;
function getAllfiles(path: string, arr: any[]) { 	// 结果将存储到arr数组中
  // console.log('该函数已递归', ++time, '次, path=', path);
  const filesArr: any[] = getfiles(path);     // 获取目录下所有文件
  // console.log('filesArr=', filesArr);
  filesArr.forEach(item => {
    if (isDir(path + item.name)) { // 如果是文件夹
      getAllfiles(path + item.name + '/', arr);
    } else if (isFile(path + item.name)) {  // 如果是文件
      arr.push((path + item.name));
    } else {
      return;
    }
  });
}


export default {
  getAllfiles,
};
